Macintosh System Error Codes Explained
 
Copyright 1993, Apple Computer, Inc.
 
The following article is from the Tech Info Library located in the Problem Resolution area.  It gives a definition of each of the system error codes in English.  This article might prove useful in understanding what your Macintosh is trying to tell you when for example, an "ID 1" error is displayed in a dialog box on your screen.
====================================================
 
On a Macintosh, many things can go wrong in very complex ways:
 
• A handle can be dereferenced.
• A routine can get a NIL pointer.
• The stack can dip into the heap for just a few cycles and not be caught by the stack sniffer.
• An application can forget to check an error code.
 
A Macintosh will usually crash with a system error code while running under System 6.0.x.  System 7 changed the way errors are displayed -- instead of displaying an error code, it translates the code to the appropriate words, like "Address Error."  Finding out what's wrong involves use of debugging tools, intricate knowledge of Macintosh memory structures, and familiarity with the application itself.  Fixing it usually involves recompiling the source code.  Here's an explanation of some of the codes:
 
ID=01 is a Bus error.  This means the computer tried to access memory that doesn't exist.  You can get this error on the Macintosh SE/30 or the Macintosh II family.  If one of these computers tried to access one or more bytes beyond the total number of bytes in RAM, you see a bus error.  You should never see this error on a Macintosh Plus or SE, because address references that are out of bounds "roll over."  This means, if one of these computers tries to access one byte beyond the total bytes in RAM, it actually accesses the first byte in memory.  If you see this error on a Macintosh Plus or SE, it's reporting the wrong error or having hardware problems.
[Noch mehr (englische) Information zum Bus Error steht am Ende dieses Kapitels.]
 
ID=02 is an Address error.  The Motorola 68000 microprocessor can access memory in increments of one byte (8 bits), one word (16 bits), or one long word (32 bits).  The microprocessor can access a byte of information at an odd or even memory address.  But it must access a word or long word at an even memory address.  So, when the microprocessor attempts to read or write a word or long word at an odd address, you see this error.  Since that's a 50/50 proposition when running random code, this one shows up quite often.
 
ID=03 means Illegal Instruction.  The computer has a specific vocabulary of
machine language instructions it can understand.  If a computer tries to execute an instruction that isn't in its vocabulary, you see this error code.  It's less likely than error 02, but still very common.
 
ID=04 is a Zero Divide error.  This error results if the microprocessor divides two numbers, and the divisor is zero.  Sometimes a programmer puts these in as debugging aids, and then forgets to take them out.
 
ID=05 is a Range Check error.  Programmers can use an instruction in the Motorola 68000 to check if a number is within a certain range.  This error indicates that the number tested isn't in the specified range.
 
ID=06 is an Overflow error.  Each number stored in a computer is given a certain amount of space.  The larger the number, the more space is needed to represent the number.  An overflow condition results if a generated number is too big for its allotted space.  A Motorola 68000 instruction tests for an overflow condition, and displays this error if it detects an overflow.
 
ID=07 means Privilege Violation.  The Motorola 68000 runs in Supervisor or
User mode.  The Macintosh should always be in Supervisor mode, but sometimes is placed in User mode.  Some of the instructions can only be executed in Supervisor mode.  If the computer attempts one of these instructions while in User mode, a Privilege Violation error results.
 
ID=08 is a Trace Mode error.  A programmer can use a runtime debugger while in Trace mode.  This allows tracing through a program one instruction at a time.  You see this error if a debugger isn't installed and the 68000 is accidentally placed in Trace mode.
 
ID=09 and ID=10 mean Line 1010 & 1111 trap.  There are many routines in the Macintosh ROM that can be called by placing instructions in a program that aren't in the 68000's vocabulary.  When the 68000 encounters such an instruction, it looks it up in the instruction table.  This table gives the location of routines paired with each instruction.  If it finds an entry in the table for the instruction, it branches to the routine.  If there's no entry for the instruction, you see one of these errors.
 
ID=12 means Unimplemented Core Routine.  A programmer might set breakpoints in parts of a program to inspect for errors.  This requires using a debugger.  If a debugger isn't installed when a breakpoint occurs, you see this error code.
 
ID=13 means Uninstalled Interrupt.  The Macintosh uses an interrupt to identify when devices like keyboards and disk drives need service. Routines must be available in memory to tell the computer how to service the device.  If those routines aren't available, you see this error.
 
ID=15 means Segment Loader error.  Macintosh programs are broken up into segments, and each program will always have at least one segment.  Multiple segments allow loading parts of the program into memory to provide more room for data in internal RAM.  The segment loader is responsible for loading a needed segment into RAM.  If the segment loader can't do this, you'll see this error.
 
ID=17 through ID=24 mean Packages 0-7 aren't present.  The Macintosh uses packages to do specific tasks.  Some of the packages are International Utilities, Binary-Decimal Conversion, Standard File Utilities, and Disk Initialization.  These packages are located in the System file.  If you get these errors, you probably have a damaged System file.  Error codes 15, 16, 26, 27, 30, and 31 also come up when the System file is damaged.  Try replacing the System file to fix this.
 
ID=25 is a Memory Full error.  You've probably run out of RAM.  But you can get this error when an earlier error causes the Macintosh to falsely detect an out-of-memory condition.
 
ID=26 means Bad Program Launch.  The Macintosh couldn't execute the application opened.
 
ID=28 means Stack Ran into Heap.  This is similar to the Memory Full error.

It's a good idea to save your work frequently, and keep current backups of your hard disk data.  When a system crash does occur, you'll lose less data if you've taken these precautions.
 
If you're getting system errors frequently, you should investigate the following possibilities:
 
• Try to open the document with a new copy of the application.
• See if the problem persists if you open other documents with the same copy of the application.
• Install new copies of the System and Finder files.
• Check to see if the size of the document exceeds the size limits for the application.
• Be sure you have enough space available on the disks you're using.
• Any changes you've made to the system might give you a clue to the cause of the crashes.
• Make a note of the desk accessories you had open, at the time of the crash, and exactly what you did before the crash.
• Also make a note of the error ID or text, and the version numbers of the application and system software you were using.
• Try to recreate the problem on another Macintosh.

Copyright 1986, 1992, Apple Computer, Inc.

=========================================================

ABRODY@VAX.CLARKU.EDU schreibt im Internet:

Bus Errors normally occur because:

1) Your application tried to open a document that was too large for the
current allotment of RAM for the application. I tried to open a 200 K
spreadsheet on Full Impact and the Bus Error occured because my RAM was set at
1000 K.  After upping it to 5MB the error disappeared.  For those who don't
know, your memory allocation is give by doing a Get Info on your closed
application from the Finder File Menu. ["Information" im Menü "Ablage"]

2) An INIT conflict. Turning off all INITS is done either by an Extension
Manager (freeware), or by pressing the SHIFT key upon booting the machine.

3) 32bit addressing on, and a program that is not 32bit-clean is opened.
Check your Memory Control Panel ["Speicher" in "Kontrollfelder"], and turn off
32bit addressing.  Reboot your machine to make it take effect.

4) Desktop file may have not been rebuilt in a long time.  This is done by
pressing the Apple-Option keys simultaneously while the machine is booting up
until the "Do you want to rebuild your desktop" ["Wollen Sie die Schreibtischdatei
wirklich neu anlegen?"] window appears.
Any comments in your Get Info windows will disappear.

5) Parameter RAM needs to be zapped. Apple-Option-P-R keys all need to be hit
simulaneously upon startup to zap the PRAM.  If your monitor blinks it did the
Zap. This will revert all control panels to factory settings, and cause the Chooser to
be set to AppleTalk On (turn it off once the machine has booted, unless you use it).

Sometimes all steps are necessary to stop a Type 1 error from occuring.
Hope this helps.
Sincerely,
ABRODY@VAX.CLARKU.EDU